就打了那么久go代码了,一般需要处理json的时候一般都是Json Marshal Unmarshal一刷子搞定,但这次遇到了一个坑,那就是marshal into interface{}
。
对于处理marshal into interface{}
问题我之前都是使用jsoniter
这个库来解决的,一般来说都能用,但这次是通过protobuf生成的文件,因为流表许多不同的结构,导致了protoc文件在同一字段使用了大量oneof
来处理。也就导致了我们生成了一个看似interface
而又有具体类型的结构。
主要解决还是这个的Marshal form []byte
问题。其实解决方法很简单。
1 | go get github.com/golang/protobuf/proto |
用这个包来处理proto
的二进制转换以及json
转换就好了。
1 |
|
这个包是专门来处理 protobuf
的转换问题的,都是没看官方文档惹的祸(